package com.jumi.microservice.material.service;

import com.jumi.microservice.material.dto.JmGoodsRequest;
import com.jumi.microservice.material.dto.JmGoodsResponse;
import com.jumi.microservice.material.dto.JmMaterialResponse;

import java.util.List;
import java.util.Map;

/**
 * @author ssk
 * @create 2020/8/4 16:50
 **/
public interface JmGoodsService {
    /**
     * 保存方法
     *
     * @param jmGoods
     * @return
     */
    int save(JmGoodsRequest jmGoods);

    /**
     * 更新方法
     *
     * @param jmGoods
     * @return
     */
    int update(JmGoodsRequest jmGoods);



    /**
     * 根据商品ID批量软删除
     *
     * @param goodsIds
     */
    void deleteBatch(Long[] goodsIds);

    /**
     * 根据goodsId查询结果
     * @param goodsId
     * @return
     */
    JmGoodsResponse findById(Long goodsId);

    /**
     * 根据条件查询商品结果集
     * @param jmGoodsRequest
     * @return
     */
    List<JmGoodsResponse> findAll(JmGoodsRequest jmGoodsRequest);

    List<JmGoodsResponse> findAllDetail(JmGoodsRequest jmGoodsRequest);

    /**
     * @Description:根据商品ids查询每个商品的属性个数
     * @Param goodsIds
     * @Return {@link List<   Map  < Object,Object>>}
     * @Throws
     * @Author Abel Yang
     * @Date 2020/8/20/020 18:17
     */
    List<Map<Object,Object>> getGoodsMaterialCountByGoodsIds(List<Long> goodsIds);

    List<JmMaterialResponse> findMaterialsDetail(Long goodsId,Long warehouseId);

    /**
     * 批量导入接口
     * @param list
     * @return
     */
    String importData(List<JmGoodsResponse> list,String createBy);
}
